//会有歧义？
//大型语言里面 变量应该先声明再使用
console.log(age);// undefined
console.log(height);// 报错
age=18;// 赋值
//JS  脚本语言。它的编译阶段和执行阶段不像java/c++分开的那么清晰、
//编译阶段有，就在代码执行前的，var就变量提升
//接下来代码进入到执行阶段，赋值应该发生在执行阶段
//变量提升 不利于代码的可读性，应该废弃的糟粕
//console.log(height);
//暂时性死区
//在编译阶段的变量提升是为了编译阶段就知道有哪些表量和常量
//let + const + 暂时性死区 解决了变量提升的问题
var age;//undefined
let height=188;
